#pragma once
#include "SGD Wrappers\CSGD_Direct3D.h"
class CParticle
{
private:
	int m_nColorRCurr;
	int m_nColorGCurr;
	int m_nColorBCurr;
	int m_nColorACurr;
	int m_nColorRStart;
	int m_nColorGStart;
	int m_nColorBStart;
	int m_nColorAStart;
	int m_nColorREnd;
	int m_nColorGEnd;
	int m_nColorBEnd;
	int m_nColorAEnd;
	int m_fLife;
	float m_nCurrLife;
	float m_fRotation;
	float m_fScaleXCurr;
	float m_fScaleYCurr;
	float m_fScaleXStart;
	float m_fScaleYStart;
	float m_fScaleXEnd;
	float m_fScaleYEnd;
	int m_fVelocityXCurr;
	int m_fVelocityYCurr;
	int m_fVelocityXStart;
	int m_fVelocityYStart;
	int m_fVelocityXEnd;
	int m_fVelocityYEnd;
	int m_nPosX;
	int m_nPosY;
	int m_nImageID;
	float m_fCPSScaleX;
	float m_fCPSScaleY;
	float m_fCPSColorA;
	float m_fCPSColorR;
	float m_fCPSColorG;
	float m_fCPSColorB;
	float m_fCPSVelocityX;
	float m_fCPSVelocityY;
	D3DRENDERSTATETYPE m_eSourceBlend;
	D3DRENDERSTATETYPE m_eDestBlend;
public:
	CParticle(void) { }
	~CParticle(void) { }

	// Do particle functions here
	// void Update();
	// void Kill();
	// void Start();

	//accessors
	D3DRENDERSTATETYPE GetSourceBlend() {return m_eSourceBlend;}
	D3DRENDERSTATETYPE GetDestBlend() {return m_eDestBlend;}
	float GetCurrLife() {return m_nCurrLife;}
	int GetImageID() {return m_nImageID;}
	int GetColorRCurr() {return m_nColorRCurr;}
	int GetColorGCurr() {return m_nColorGCurr;}
	int GetColorBCurr() {return m_nColorBCurr;}
	int GetColorACurr() {return m_nColorACurr;}
	int GetColorRStart() {return m_nColorRStart;}
	int GetColorGStart() {return m_nColorGStart;}
	int GetColorBStart() {return m_nColorBStart;}
	int GetColorAStart() {return m_nColorAStart;}
	int GetColorREnd() {return m_nColorREnd;}
	int GetColorGEnd() {return m_nColorGEnd;}
	int GetColorBEnd() {return m_nColorBEnd;}
	int GetColorAEnd() {return m_nColorAEnd;}
	int GetLife() {return m_fLife;}
	float GetRotation() {return m_fRotation;}
	float GetScaleXCurr() {return m_fScaleXCurr;}
	float GetScaleYCurr() {return m_fScaleYCurr;}
	float GetScaleXStart() {return m_fScaleXStart;}
	float GetScaleYStart() {return m_fScaleYStart;}
	float GetScaleXEnd() {return m_fScaleXEnd;}
	float GetScaleYEnd() {return m_fScaleYEnd;}
	int GetVelocityXCurr() {return m_fVelocityXCurr;}
	int GetVelocityYCurr() {return m_fVelocityYCurr;}
	int GetVelocityXStart() {return m_fVelocityXStart;}
	int GetVelocityYStart() {return m_fVelocityYStart;}
	int GetVelocityXEnd() {return m_fVelocityXEnd;}
	int GetVelocityYEnd() {return m_fVelocityYEnd;}
	int GetPosX() {return m_nPosX;}
	int GetPosY() {return m_nPosY;}
	float GetCPSScaleX() {return m_fCPSScaleX;}
	float GetCPSScaleY() {return m_fCPSScaleY;}
	float GetCPSColorA() {return m_fCPSColorA;}
	float GetCPSColorR() {return m_fCPSColorR;}
	float GetCPSColorG() {return m_fCPSColorG;}
	float GetCPSColorB() {return m_fCPSColorB;}
	float GetCPSVelocityX() {return m_fCPSVelocityX;}
	float GetCPSVelocityY() {return m_fCPSVelocityY;}
	//mutators
	void SetCurrLife(float currlife) {m_nCurrLife = currlife;}
	void SetImageID(int image) {m_nImageID = image;}
	void SetSourceBlend(D3DRENDERSTATETYPE blend) {m_eSourceBlend = blend;}
	void SetDestBlend(D3DRENDERSTATETYPE blend) {m_eDestBlend = blend;}
	void SetColorRCurr(int color) {m_nColorRCurr = color;}
	void SetColorGCurr(int color) {m_nColorGCurr = color;}
	void SetColorBCurr(int color) {m_nColorBCurr = color;}
	void SetColorACurr(int color) {m_nColorACurr = color;}
	void SetColorRStart(int color) {m_nColorRStart = color;}
	void SetColorGStart(int color) {m_nColorGStart = color;}
	void SetColorBStart(int color) {m_nColorBStart = color;}
	void SetColorAStart(int color) {m_nColorAStart = color;}
	void SetColorREnd(int color) {m_nColorREnd = color;}
	void SetColorGEnd(int color) {m_nColorGEnd = color;}
	void SetColorBEnd(int color) {m_nColorBEnd = color;}
	void SetColorAEnd(int color) {m_nColorAEnd = color;}
	void SetLife(int l) {m_fLife = l;}
	void SetRotation(float r) {m_fRotation = r;}
	void SetScaleXCurr(float sx) {m_fScaleXCurr = sx;}
	void SetScaleYCurr(float sy) {m_fScaleYCurr = sy;}
	void SetScaleXStart(float sx) {m_fScaleXStart = sx;}
	void SetScaleYStart(float sy) {m_fScaleYStart = sy;}
	void SetScaleXEnd(float sx) {m_fScaleXEnd = sx;}
	void SetScaleYEnd(float sy) {m_fScaleYEnd = sy;}
	void SetVelocityXCurr(int vx) {m_fVelocityXCurr = vx;}
	void SetVelocityYCurr(int vy) {m_fVelocityYCurr = vy;}
	void SetVelocityXStart(int vx) {m_fVelocityXStart = vx;}
	void SetVelocityYStart(int vy) {m_fVelocityYStart = vy;}
	void SetVelocityXEnd(int vx) {m_fVelocityXEnd = vx;}
	void SetVelocityYEnd(int vy) {m_fVelocityYEnd = vy;}
	void SetPosX(int px) {m_nPosX = px;}
	void SetPosY(int py) {m_nPosY = py;}
	void SetCPSScaleX(float CPSs) {m_fCPSScaleX = CPSs;}
	void SetCPSScaleY(float CPSs) {m_fCPSScaleY = CPSs;}
	void SetCPSColorA(float CPSc) {m_fCPSColorA = CPSc;}
	void SetCPSColorR(float CPSc) {m_fCPSColorR = CPSc;}
	void SetCPSColorG(float CPSc) {m_fCPSColorG = CPSc;}
	void SetCPSColorB(float CPSc) {m_fCPSColorB = CPSc;}
	void SetCPSVelocityX(float CPSv) {m_fCPSVelocityX = CPSv;}
	void SetCPSVelocityY(float CPSv) {m_fCPSVelocityY = CPSv;}
};